A virtual machine (VM) is a portion of software that, when executed on appropriate hardware, creates an environment allowing the virtualization of an actual physical computer system. Each VM may function as a self-contained platform, running its own operating system (OS) and software applications (processes). Typically, a hypervisor manages allocation and virtualization of computer resources and performs context switching to cycle between various VMs.
A host machine (e.g., computer or server) is typically enabled to simultaneously run multiple VMs, where each VM may be used by a local or remote client. The host machine allocates a certain amount of the host's resources to each of the VMs. Each VM is then able to use the allocated resources to execute applications, including operating systems known as guest operating systems. The hypervisor virtualizes the underlying hardware of the host machine or emulates hardware devices.
In a virtualized data center, clients may connect to VMs using a remote access protocol, such as Virtual Network Computing (VNC), Remote Desktop Protocol (RDP), Independent Computing Architecture (ICA), or Simple Protocol for Independent Computing Environments (SPICE). The remote access protocol provides client access to a remote machine display and devices (e.g., keyboard, mouse, audio) to allow the user to experience a similar interaction as with a local machine. In this topology, VMs can support single or multiple virtual monitors and the client device should be able to display these monitors. Such a configuration is typically achieved by using a client device with single or multiple monitors, respectively. However, this solution creates challenges. One challenge is the use of high resolution display in the VM when the client device has no monitor that supports this resolution. Another challenge is that the use of multiple monitors at the client device requires expensive graphics processing units (GPUs), as well as a strong client device (in terms of resources), which is not always available.